﻿using System;
using System.Text;
using System.Web.UI.WebControls;

public partial class Services_SearchResults : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SessionValidation();
        
        String SearchString = (String) Session["SearchString"];
        String SearchType = (String) Session["SearchType"];
        
        // No se admiten que ninguna de las opciones sea null
        if (String.IsNullOrEmpty(SearchString) || String.IsNullOrEmpty(SearchType))
        {
            Response.Redirect("~/AdminCP/");
        }

        //// No se admiten búsquedas con menor o igual de 2 caracteres
        //if (String.Equals(SearchType, "Matricula") && SearchString.Length <= 2)
        //{
        //    Response.Redirect("~/AdminCP/");
        //}

        // Limpiar la Matrícula o el Folio en caso de que existan espacios
        if (String.Equals(SearchType, "Matricula") || String.Equals(SearchType, "Folio"))
        {
            RemoveBlanks(SearchString);
        }

        SearchDataObjectSource.SelectParameters["SearchString"].DefaultValue = SearchString;
        SearchDataObjectSource.SelectParameters["SearchType"].DefaultValue = SearchType;
    }

    // Se envía a la página de reportes
    protected void VerSolicitud(Object sender, CommandEventArgs a)
    {
        String Folio = a.CommandArgument.ToString();
        Response.Redirect("~/AdminCP/Reportes.aspx?Folio=" + Folio);
    }


    // Valida que la sesión de Admin sea valida y/o exista
    protected void SessionValidation()
    {
        String SessionID = (String)Session["SessionID"];
        String UserType = (String)Session["UserType"];

        if (String.IsNullOrEmpty(SessionID) || String.IsNullOrEmpty(UserType))
        {
            Session.RemoveAll();
            Response.Redirect("~/Default.aspx");
        }
        else
        {
            if (!String.Equals(UserType, "Administradores"))
            {
                Session.RemoveAll();
                Response.Redirect("~/Default.aspx");
            }
        }
    }


    // Remueve los espacios vacíos de la búsqueda en caso de 
    // búsqueda por Matrícula por folio
    protected String RemoveBlanks(String str)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.Length; i++)
        {
            char c = str[i];
            switch (c)
            {
                case '\r':
                case '\n':
                case '\t':
                case ' ':
                    continue;
                default:
                    sb.Append(c);
                    break;
            }
        }
        return sb.ToString();
    }
}